gdk: Remove gdk_window_set_debug_updates()
authorBenjamin Otte <otte@redhat.com>
Tue, 11 Oct 2016 14:26:16 +0000 (16:26 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 16 Oct 2016 16:18:58 +0000 (18:18 +0200)
The update tracking code was ugly and using deprecated drawing APIs. It
was also in the wrong place.

So instead of trying to keep it working, I'll remove it. We need to find
a better way to put it and make it work there.

docs/reference/gdk/gdk4-sections.txt
gdk/gdk-private.c
gdk/gdk-private.h
gdk/gdkdisplay.c
gdk/gdkdisplayprivate.h
gdk/gdkinternals.h
gdk/gdkwindow.c
gdk/gdkwindow.h
gtk/gtkmain.c
gtk/inspector/visual.c

index 33efa6dfc6244d359ec44b02206fde7b0f3860ed..4b2252fa995cd37891d42eee215bda3b51f65a08 100644 (file)
@@ -417,7 +417,6 @@ gdk_window_freeze_updates
 gdk_window_thaw_updates
 gdk_window_process_all_updates
 gdk_window_process_updates
-gdk_window_set_debug_updates
 gdk_window_enable_synchronized_configure
 gdk_window_configure_finished
 gdk_window_get_frame_clock
index 37a4ee60c3ca1258c5029a5decc6c00f85fac1c7..c7659347451d2afdbb26137a074ae207c98661ff 100644 (file)
@@ -15,8 +15,6 @@ gdk__private__ (void)
     gdk_window_thaw_toplevel_updates,
     gdk_display_get_rendering_mode,
     gdk_display_set_rendering_mode,
-    gdk_display_get_debug_updates,
-    gdk_display_set_debug_updates,
     gdk_window_move_to_rect
   };
 
index 69d126638f67f8858805ddb8067585543b2eed14..ba16b921773253b8c6a1777878c0b0dac828546f 100644 (file)
@@ -27,10 +27,6 @@ GdkRenderingMode gdk_display_get_rendering_mode (GdkDisplay       *display);
 void             gdk_display_set_rendering_mode (GdkDisplay       *display,
                                                  GdkRenderingMode  mode);
 
-gboolean         gdk_display_get_debug_updates (GdkDisplay *display);
-void             gdk_display_set_debug_updates (GdkDisplay *display,
-                                                gboolean    debug_updates);
-
 void            gdk_window_move_to_rect         (GdkWindow          *window,
                                                  const GdkRectangle *rect,
                                                  GdkGravity          rect_anchor,
@@ -61,10 +57,6 @@ typedef struct {
   void             (* gdk_display_set_rendering_mode) (GdkDisplay       *display,
                                                        GdkRenderingMode  mode);
 
-  gboolean         (* gdk_display_get_debug_updates) (GdkDisplay *display);
-  void             (* gdk_display_set_debug_updates) (GdkDisplay *display,
-                                                      gboolean    debug_updates);
-
   void (* gdk_window_move_to_rect) (GdkWindow          *window,
                                     const GdkRectangle *rect,
                                     GdkGravity          rect_anchor,
index 53b917958af10867eab5a8e28adab78a1aa1e4d9..92ac89493cc9c3c7053ed414e3cb130f5d61e493 100644 (file)
@@ -2408,23 +2408,6 @@ gdk_display_set_rendering_mode (GdkDisplay       *display,
   display->rendering_mode = mode;
 }
 
-void
-gdk_display_set_debug_updates (GdkDisplay *display,
-                               gboolean    debug_updates)
-{
-  display->debug_updates = debug_updates;
-  display->debug_updates_set = TRUE;
-}
-
-gboolean
-gdk_display_get_debug_updates (GdkDisplay *display)
-{
-  if (display->debug_updates_set)
-    return display->debug_updates;
-  else
-    return _gdk_debug_updates;
-}
-
 void
 gdk_display_add_seat (GdkDisplay *display,
                       GdkSeat    *seat)
index fea52aa161d299dca9cc8968fea06670ec7c47ba..c2a3c089904bf39dcee8494e7eeeb69a6c488b1f 100644 (file)
@@ -123,9 +123,6 @@ struct _GdkDisplay
   guint has_gl_extension_texture_non_power_of_two : 1;
   guint has_gl_extension_texture_rectangle : 1;
 
-  guint debug_updates     : 1;
-  guint debug_updates_set : 1;
-
   GdkRenderingMode rendering_mode;
 
   GList *seats;
index 25496fc954d0716189cd7374179d853f9b009aed..03e49b6cec0741787914552ab311232b2ea8b5b7 100644 (file)
@@ -92,7 +92,6 @@ extern GdkWindow        *_gdk_parent_root;
 extern guint _gdk_debug_flags;
 extern guint _gdk_gl_flags;
 extern GdkRenderingMode    _gdk_rendering_mode;
-extern gboolean _gdk_debug_updates;
 
 #ifdef G_ENABLE_DEBUG
 
index b7ffc536d9c2252af9a98fa820283003231bc262..678fdca526369d73ca7c367f6e579a5041392a23 100644 (file)
@@ -183,10 +183,6 @@ static cairo_surface_t *gdk_window_ref_impl_surface (GdkWindow *window);
 static void gdk_window_set_frame_clock (GdkWindow      *window,
                                         GdkFrameClock  *clock);
 
-static void draw_ugly_color (GdkWindow       *window,
-                             const cairo_region_t *region,
-                             int color);
-
 
 static guint signals[LAST_SIGNAL] = { 0 };
 static GParamSpec *properties[LAST_PROP] = { NULL, };
@@ -3533,7 +3529,6 @@ gdk_cairo_create (GdkWindow *window)
 /* Code for dirty-region queueing
  */
 static GSList *update_windows = NULL;
-gboolean _gdk_debug_updates = FALSE;
 
 static inline gboolean
 gdk_window_is_ancestor (GdkWindow *window,
@@ -3832,9 +3827,7 @@ gdk_window_process_updates_internal (GdkWindow *window)
 {
   GdkWindowImplClass *impl_class;
   GdkWindow *toplevel;
-  GdkDisplay *display;
 
-  display = gdk_window_get_display (window);
   toplevel = gdk_window_get_toplevel (window);
   if (toplevel->geometry_dirty)
     {
@@ -3877,18 +3870,6 @@ gdk_window_process_updates_internal (GdkWindow *window)
          /* Clip to part visible in impl window */
          cairo_region_intersect (expose_region, window->clip_region);
 
-         if (gdk_display_get_debug_updates (display))
-           {
-              cairo_region_t *swap_region = cairo_region_copy (expose_region);
-              cairo_region_subtract (swap_region, window->active_update_area);
-              draw_ugly_color (window, swap_region, 1);
-              cairo_region_destroy (swap_region);
-
-             /* Make sure we see the red invalid area before redrawing. */
-             gdk_display_sync (gdk_window_get_display (window));
-             g_usleep (70000);
-           }
-
           if (impl_class->queue_antiexpose)
             impl_class->queue_antiexpose (window, expose_region);
 
@@ -4197,29 +4178,6 @@ gdk_window_set_invalidate_handler (GdkWindow                      *window,
   window->invalidate_handler = handler;
 }
 
-static void
-draw_ugly_color (GdkWindow       *window,
-                const cairo_region_t *region,
-                 int color)
-{
-  cairo_t *cr;
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  cr = gdk_cairo_create (window);
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* Draw ugly color all over the newly-invalid region */
-  if (color == 0)
-    cairo_set_source_rgb (cr, 50000/65535., 10000/65535., 10000/65535.);
-  else
-    cairo_set_source_rgb (cr, 10000/65535., 50000/65535., 10000/65535.);
-
-  gdk_cairo_region (cr, region);
-  cairo_fill (cr);
-
-  cairo_destroy (cr);
-}
-
 static void
 impl_window_add_update_area (GdkWindow *impl_window,
                             cairo_region_t *region)
@@ -4322,7 +4280,6 @@ gdk_window_invalidate_maybe_recurse_full (GdkWindow            *window,
 {
   cairo_region_t *visible_region;
   cairo_rectangle_int_t r;
-  GdkDisplay *display;
 
   g_return_if_fail (GDK_IS_WINDOW (window));
 
@@ -4343,10 +4300,6 @@ gdk_window_invalidate_maybe_recurse_full (GdkWindow            *window,
   if (child_func)
     invalidate_impl_subwindows (window, region, child_func, user_data);
 
-  display = gdk_window_get_display (window);
-  if (gdk_display_get_debug_updates (display))
-    draw_ugly_color (window, visible_region, 0);
-
   while (window != NULL && 
         !cairo_region_is_empty (visible_region))
     {
@@ -4688,37 +4641,6 @@ gdk_window_thaw_toplevel_updates (GdkWindow *window)
   gdk_window_schedule_update (window);
 }
 
-/**
- * gdk_window_set_debug_updates:
- * @setting: %TRUE to turn on update debugging
- *
- * With update debugging enabled, calls to
- * gdk_window_invalidate_region() clear the invalidated region of the
- * screen to a noticeable color, and GDK pauses for a short time
- * before sending exposes to windows during
- * gdk_window_process_updates().  The net effect is that you can see
- * the invalid region for each window and watch redraws as they
- * occur. This allows you to diagnose inefficiencies in your application.
- *
- * In essence, because the GDK rendering model prevents all flicker,
- * if you are redrawing the same region 400 times you may never
- * notice, aside from noticing a speed problem. Enabling update
- * debugging causes GTK to flicker slowly and noticeably, so you can
- * see exactly what’s being redrawn when, in what order.
- *
- * The --gtk-debug=updates command line option passed to GTK+ programs
- * enables this debug option at application startup time. That's
- * usually more useful than calling gdk_window_set_debug_updates()
- * yourself, though you might want to use this function to enable
- * updates sometime after application startup time.
- *
- **/
-void
-gdk_window_set_debug_updates (gboolean setting)
-{
-  _gdk_debug_updates = setting;
-}
-
 /**
  * gdk_window_constrain_size:
  * @geometry: a #GdkGeometry structure
index 9e14c6fa6914ec8922f5e1da6e789cecd1bcd777..fb495a989d0df92756fb26692568679406b99714 100644 (file)
@@ -1037,10 +1037,6 @@ GDK_AVAILABLE_IN_ALL
 void       gdk_window_process_updates     (GdkWindow    *window,
                                           gboolean      update_children);
 
-/* Enable/disable flicker, so you can tell if your code is inefficient. */
-GDK_AVAILABLE_IN_ALL
-void       gdk_window_set_debug_updates   (gboolean      setting);
-
 GDK_AVAILABLE_IN_ALL
 void       gdk_window_constrain_size      (GdkGeometry    *geometry,
                                            GdkWindowHints  flags,
index 5c0dcb18848dbad1645a7595cb3cbfee42756f29..9e2a6df54832c87a8ad723b150ba5abcdf7a49ef 100644 (file)
@@ -736,9 +736,6 @@ do_post_parse_initialization (int    *argc,
       g_log_set_always_fatal (fatal_mask);
     }
 
-  if (debug_flags[0].flags & GTK_DEBUG_UPDATES)
-    gdk_window_set_debug_updates (TRUE);
-
   gtk_widget_set_default_direction (gtk_get_locale_direction ());
 
   _gtk_ensure_resources ();
index bb36432352ea221e4b463f54c6279d6288bd8102..7b68a1dd3da00a13dcf6654f52175fcc86443931 100644 (file)
@@ -185,19 +185,21 @@ font_scale_entry_activated (GtkEntry           *entry,
 static void
 updates_activate (GtkSwitch *sw)
 {
+#if 0
   gboolean updates;
 
   updates = gtk_switch_get_active (sw);
-  GDK_PRIVATE_CALL (gdk_display_set_debug_updates) (gdk_display_get_default (), updates);
+  /* FIXME: Do something */
   redraw_everything ();
+#endif
 }
 
 static void
 init_updates (GtkInspectorVisual *vis)
 {
-  gboolean updates;
+  gboolean updates = FALSE;
 
-  updates = GDK_PRIVATE_CALL (gdk_display_get_debug_updates) (gdk_display_get_default ());
+  /* FIXME: Do something */
   gtk_switch_set_active (GTK_SWITCH (vis->priv->updates_switch), updates);
 }